



Counting number of lines, words, characters and paragraphs in a text file using Java


Counting the number of characters is important because almost all the text boxes that rely on user input have certain limit on the number of characters that can be inserted. For example, the character limit on a Facebook post is 63, 206 characters. Whereas, for a tweet on Twitter the character limit is 140 characters and the character limit is 80 per post for Snapchat.
Determining character limits become crucial when the tweet and Facebook post updates are being done through api’s. 
Note: This program would not run on online compilers. Please make a txt file on your system and give its path to run this program on your system.







 


 

 













// Java program to count the  
// number of charaters in a file 
import java.io.*; 
  
public class Test 
{ 
    public static void main(String[] args) throws IOException 
    { 
        File file = new File("C:\\Users\\Mayank\\Desktop\\1.txt"); 
        FileInputStream fileStream = new FileInputStream(file); 
        InputStreamReader input = new InputStreamReader(fileStream); 
        BufferedReader reader = new BufferedReader(input); 
          
        String line; 
          
        // Initializing counters 
        int countWord = 0; 
        int sentenceCount = 0; 
        int characterCount = 0; 
        int paragraphCount = 1; 
        int whitespaceCount = 0; 
          
        // Reading line by line from the  
        // file until a null is returned 
        while((line = reader.readLine()) != null) 
        { 
            if(line.equals("")) 
            { 
                paragraphCount++; 
            } 
            if(!(line.equals(""))) 
            { 
                  
                characterCount += line.length(); 
                  
                // \\s+ is the space delimiter in java 
                String[] wordList = line.split("\\s+"); 
                  
                countWord += wordList.length; 
                whitespaceCount += countWord -1; 
                  
                // [!?.:]+ is the sentence delimiter in java 
                String[] sentenceList = line.split("[!?.:]+"); 
                  
                sentenceCount += sentenceList.length; 
            } 
        } 
          
        System.out.println("Total word count = " + countWord); 
        System.out.println("Total number of sentences = " + sentenceCount); 
        System.out.println("Total number of characters = " + characterCount); 
        System.out.println("Number of paragraphs = " + paragraphCount); 
        System.out.println("Total number of whitespaces = " + whitespaceCount); 
    } 
} 


















Output:
Total word count = 5

Total number of sentences = 3

Total number of characters = 21

Number of paragraphs = 2

Total number of whitespaces = 7


In-built functions used

File(String pathname): java.io.File: Creates a new File instance by converting the given pathname string into an abstract pathname.
Syntax:
public File(String pathname)

Parameters:

pathname - A pathname string

FileInputStream(File file): java.io.FileInputStream: Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system.
Syntax:
public FileInputStream(File file) throws FileNotFoundException

Parameters:

file - the file to be opened for reading.

Throws:

FileNotFoundException - if the file does not exist, is a directory

rather than a regular file, or for some other reason

 cannot be opened for reading.

SecurityException - if a security manager exists and its

checkRead method denies read access to the file.

InputStreamReader(InputStream in): java.io.InputStreamReader: Creates an InputStreamReader that uses the default charset.
Syntax:
public InputStreamReader(InputStream in)

Parameters:

in - An InputStream

BufferedReader(Reader in): java.io.BufferedReader: Creates a buffering character-input stream that uses a default-sized input buffer.
Syntax:
public BufferedReader(Reader in)

Parameters:

in - A Reader


This article is contributed by Mayank Kumar. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.













 


 

 
Most popular in Java
 






 
More related articles in Java
 



 


 













